This disclosure in general relates to, but is not limited to, cloud-based computer processing, chunking and indexing of media files for use in media streaming, and coordinating timing of media streaming over a data communication network with an end user device.
The delivery of media content (such as video or audio) to end user devices over data communication networks such as the Internet is in high demand. The delivery of media over such networks may be accomplished in many ways, including progressive downloading or streaming. Streaming is often preferred to progressive downloading because it offers additional features such as content protection and the ability to seek undownloaded parts of a media file. The process of preparing a media file or media stream for streaming delivery to an end user device typically involves “chunking” the file, that is, dividing files into smaller segments for delivery. Information about the segments, such as where segments may be accessed, may be stored in an index file (also called a manifest). One type of index file is a client manifest, which may be sent to a client, such as a media player application in an end user device, for use in streaming delivery.
In one exemplary configuration a media provider may supply the media content to a hosting service for distribution to one or more end user devices (such as a video capable cellphone or a television screen) over a network. If the media content has been created in its entirety (e.g. a previous year's movie), the content may be stored by the hosting service in a variety of file sizes and formats for efficient delivery to the end user devices.
Delivery of live media content (such as a sporting event as it occurs) presents a variety of problems. Such problems may include synchronization and coordination, transmission load balancing, and modifying the media appropriately for streaming delivery to various types of end user devices. Received live media may have timing data embedded in a variety of formats, or the timing data may not correlate with the actual time either of reception or of transmission. Multiple end user devices requesting the same live media at the same time may create problems for the delivery equipment. Various end user devices may be able to receive, in real time, only reduced versions of the live media stream received at a provider.
The embodiments disclosed herein address these and other problems.